using SheLife.Domain.Entities;

namespace SheLife.Domain.Interfaces.Repositories
{
    /// <summary>
    /// 护肤产品仓储接口
    /// </summary>
    public interface ISkincareProductRepository : IRepository<SkincareProduct>
    {
        Task<IEnumerable<SkincareProduct>> GetByUserIdAsync(Guid userId);
        Task<IEnumerable<SkincareProduct>> GetByCategoryAsync(string category);
        Task<IEnumerable<SkincareProduct>> GetByBrandAsync(string brand);
        Task<IEnumerable<SkincareProduct>> GetByLifeStageAsync(string lifeStage);
        Task<IEnumerable<SkincareProduct>> GetBySkinTypeAsync(string skinType);
        Task<IEnumerable<SkincareProduct>> GetExpiringProductsAsync(int days = 30);
        Task<IEnumerable<SkincareProduct>> GetLowStockProductsAsync(int threshold = 10);
        Task<IEnumerable<SkincareProduct>> SearchProductsAsync(string keyword);
    }
}